// Ensemble des fonctions de contrôle de saisi dans les formulaires
// -- Validation réalisé à l'aide de JQUERY

// Chaine de caractère spéciaux
// SdZ : ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ

// -- Fait en TP [FOURNIAL - MIOR]
function check_formulaire(champ, regex) {
    var valeur = champ.attr("value");
    if(valeur.match(regex))
    {
        // Valeur Correct
        champ.removeClass("erreur_saisie");
        champ.addClass("valide_saisie");
    }
    else
    {
        // Valeur incorrect
        champ.addClass("erreur_saisie");
        champ.removeClass("valide_saisie");
    }
}

// -- Fait en TP [FOURNIAL - MIOR]
function rempli() {
    check_formulaire($(this), /.+/);
}

// -- Fait en TP [FOURNIAL - MIOR]
function password() {
    check_formulaire($(this), /[a-z0-9]{8}/);
}

// -- Fait en TP [FOURNIAL - MIOR]
function nom() {
    check_formulaire($(this), /^[A-Z \-ÀÁÂÃÄÅÒÓÔÕÖØÈÉÊËÇÌÍÎÏÙÚÛÜÑ]{3}[A-Z \-ÀÁÂÃÄÅÒÓÔÕÖØÈÉÊËÇÌÍÎÏÙÚÛÜÑ]*$/);
}

// -- Fait en TP [FOURNIAL - MIOR]
function prenom() {
    check_formulaire($(this), /^[A-Z][a-z \-àáâãäåòóôõöøèéêëçìíîïùúûüÿñ]{2}[a-z \-àáâãäåòóôõöøèéêëçìíîïùúûüÿñ]*$/);
}

// -- Fait en TP [FOURNIAL - MIOR]
function code_postal() {
    check_formulaire($(this), /^[0-9]{5}$/);
}

// -- Fait en TP [FOURNIAL - MIOR]
function ville() {
    check_formulaire($(this), /^[a-zàáâãäåòóôõöøèéêëçìíîïùúûüÿñ ]{3}[a-zàáâãäåòóôõöøèéêëçìíîïùúûüÿñ ]*$/i);
}

// -- Fait en TP [FOURNIAL - MIOR]
function email() {
    check_formulaire($(this), /^[A-Z0-9._\-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i);
}

function check_champs_inscription(identifiant, fonction) {
    $(identifiant).each(fonction).click(fonction).change(fonction).keyup(fonction);
}

function check_erreur_page() {
    var html = $(this).html();

    // Rempli
    if(html.match(/.+/))
    {
        $(this).show();
    }
    else
    {
        $(this).hide();
    }
}
/*
$(".obligatoire").each(rempli).click(rempli).change(rempli).keyup(rempli);
$("#password").each(password).click(password).change(password).keyup(password);
$("#nom").each(nom).click(nom).change(nom).keyup(nom);
$("#prenom").each(prenom).click(prenom).change(prenom).keyup(prenom);
$("#email").each(email).click(email).change(email).keyup(email);
$("#cp").each(code_postal).click(code_postal).change(code_postal).keyup(code_postal);
$("#ville").each(ville).click(ville).change(ville).keyup(ville);
*/
// -- Fait en TP [FOURNIAL - MIOR]
$(function() {
    check_champs_inscription(".obligatoire", rempli);
    check_champs_inscription("#PASSWD", password);
    check_champs_inscription("#NOM", nom);
    check_champs_inscription("#PRENOM", prenom);
    check_champs_inscription("#EMAIL", email);
    check_champs_inscription("#CODEPOSTAL", code_postal);
    check_champs_inscription("#VILLE", ville);
    
    $("#DATEPARUTION").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy-mm-dd'
    });

    $(".erreur").each(check_erreur_page);
    
    $(".infos").mouseover(function() {
        var exemple = $(this).next(".exemple");
        exemple.css("top", ($(this).position().top + 25));
        exemple.css("left", ($(this).position().left - 100));
        exemple.show();
    }).mouseout(function() {
        $(this).next(".exemple").hide();
    });

    // Lors de l'envoi du formulaire
    $("form").submit(function() {
        // return true;
        var erreur = false;
        $("input, select, textarea", $(this)).each(function() {
            // Si un champ n'est pas en erreur
            if(!erreur)
            {
                erreur = $(this).hasClass("erreur_saisie");
            }
        });

        // Si un champ est en erreur
        if(erreur)
        {
            alert("Un des champs n'est pas rempli correctement !");
        }

        // S'il n'y a pas d'erreur valide le formulaire
        return !erreur;
    });

    $(".acheter-panier-recapitulation .valider-achat #acheter").click(function() {
        var check = $("#cgv").attr("checked");
        if(check == "checked")
        {
            return true;
        }
        else
        {
            alert("Veuillez valider les conditions générales. Merci.");
            return false;
        }
    })
});